import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'

// https://vite.dev/config/
export default defineConfig({
  plugins: [react()],
  
  // 路径别名配置
  resolve: {
    alias: {
      '@': '/src',
      '@components': '/src/components',
      '@hooks': '/src/hooks',
      '@store': '/src/store',
      '@utils': '/src/utils',
      '@types': '/src/types',
      '@constants': '/src/constants',
    },
  },
  
  // 构建优化
  build: {
    // 启用代码分割
    rollupOptions: {
      output: {
        manualChunks: {
          'react-vendor': ['react', 'react-dom'],
          'mui-vendor': ['@mui/material', '@mui/icons-material', '@emotion/react', '@emotion/styled'],
          'flow-vendor': ['@xyflow/react'],
          'utils-vendor': ['zod', 'uuid', 'dagre', 'notistack'],
        },
      },
    },
    // 启用压缩（使用 esbuild，更快且无需额外依赖）
    minify: 'esbuild',
    // 源码映射（生产环境可选）
    sourcemap: false,
    // 块大小警告限制
    chunkSizeWarningLimit: 1000,
  },
  
  // 开发服务器配置
  server: {
    port: 3000,
    open: true,
    cors: true,
  },
  
  // 预加载优化
  optimizeDeps: {
    include: [
      'react',
      'react-dom',
      '@mui/material',
      '@xyflow/react',
    ],
    exclude: ['@xyflow/react'],
  },
})
